1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for processing data. Still more particularly, the invention relates to resource conservative installation of compressed archives.
2. Description of Related Art
As the complexity of software increases, the size of the installation image of software files also increases. Currently, floppy disks lack sufficient memory to be used as installation media for many software programs, essentially rendering floppy disks obsolete as installation media. Compact disks (CDs) and digital versatile disks (DVDs) provide sufficient memory for most software installation images, though multiple disks may be required and some data processing systems do not have CD drives or DVD drives. In addition, some installation images are downloaded directly over a network, such as the Internet. In this case, the size of an installation image can make downloading the entire installation image cost prohibitive in terms of the time required to download the installation image. Furthermore, the size of the installation image may make downloading the entire installation image impossible if the target device lacks sufficient available memory.
To reduce the size of an installation image and number of media required to hold an installation image, various compression techniques are used to compress the payload files of the installation image. A group of payload files are compressed and combined into a single archive file, which is usually much smaller than the original group of individual, uncompressed payload files. Later, when the installation image is to be installed, the archive file is uncompressed and the payload files installed on a target data processing system.
The process of decompressing and installing files from an archive file has required, in the past, much more space than the space required by the original archive files. Prior art decompression and installation techniques require that the installation image be downloaded or copied onto the target data processing system. The image is typically then decompressed into a temporary space, thus creating another copy of the payload data.
For example, an executable self-extracting archive file requires 10 megabytes (MB) to store. The archive file contains 25 MB of payload files when all payload files are decompressed. Decompressing the archive file and installing the payload files on the target data processing system requires an additional 40 MB of space because 25 MB are used for the payload files and 15 MB of space is used for temporary files used during the installation process. Thus, 50 MB of space is consumed to install 25 MB of payload files.
Once the program is installed on the target data processing system, the space requirements continue to grow when updates are applied. Updates are often larger than the original install image. Furthermore, if the update saves an old version of the program in order to preserve the capability of restoring the older version, then the space requirements grow even more. The problem becomes more frustrating when the target data processing system only needs to install a fraction of the payload files. Thus, a very large amount of space may be needed to decompress and install even one payload file stored in an archive file.
Some data processing systems have a very limited amount of available memory for these functions. For examples, PDAs, cell phones, and other devices containing small data processing systems may have very limited memory. Although these devices might benefit from installing a particular payload file contained in an archive file, installing the particular payload file may be impossible if the installation process requires more space than is available to the target data processing system.
Thus, it would be advantageous to have a method, process, and data processing system for minimizing the amount of memory required to extract, decompress, and install payload files from an archive file.